#include <graphics/ModelManager.h>

namespace ne
{
    template<> ModelManager* Singleton<ModelManager>::mpInstance = 0;

    ModelManager::ModelManager()
    {
        mResourceType = "Model";
        std::cout << "Construct Model Manager\n";
    }

    ModelManager::~ModelManager()
    {
        std::cout << "Disconstruct Model Manager\n";
    }

    ModelManager& ModelManager::GetSingleton()
    {
        assert(mpInstance);
        return *mpInstance;
    }

    ModelManager* ModelManager::GetSingletonPtr()
    {
        return mpInstance;
    }

    Resource* ModelManager::createImplement(const uint64_t id,
                                           const std::string &name,
                                           const std::string &fileName,
                                           const bool isManual,
                                           ManualResourceLoader *pLoader)
    {
        return new Model(this, id, name, fileName, isManual, pLoader);
    }
}
